// ==UserScript==
// @name         快速导航栏
// @namespace    http://ms.zjer.cn/
// @version      1.3
// @description  在网页右侧创建浮动快捷导航栏
// @author       zjlester
// @match        *://ms.zjer.cn/*
// @grant        none
// ==/UserScript==



/**
 * 本程序的功能：访问名师网时创建一个快速导航栏，包含常用链接和功能链接
 * 完成时间：2025年9月6日
 * 更新版本：1.3
 * PS: 另行编写了start.html，可以替代本代码功能。
 */



(function() {
    'use strict';

    // 等待DOM加载完成
    document.addEventListener('DOMContentLoaded', function() {
        createQuickNavigation();
    });

    // 如果DOM已经加载完成，直接执行
    if (document.readyState === 'complete' || document.readyState === 'interactive') {
        createQuickNavigation();
    }

    // 创建快捷导航栏
    function createQuickNavigation() {
        // 检查当前页面是否为管理后台页面，如果是则不显示导航栏
        if (window.location.href.includes('index.php?r=studio/admin')) {
            console.log('当前为管理后台页面，不显示快捷导航栏');
            return;
        }
        
        // 检查是否已经存在导航栏，防止在嵌套网页中重复加载
        if (document.getElementById('quick-navigation-bar')) {
            console.log('快捷导航栏已存在，防止重复加载');
            return;
        }
        
        // 检查是否在iframe中加载，避免在嵌套页面中重复显示
        if (window.self !== window.top) {
            console.log('当前在iframe中，不显示快捷导航栏');
            return;
        }
        
        // 创建导航栏容器
        const navContainer = document.createElement('div');
        navContainer.id = 'quick-navigation-bar';
        navContainer.style.cssText = `
            position: fixed;
            right: 20px;
            top: 50%;
            transform: translateY(-50%);
            width: 180px;
            background: #fff;
            border: 1px solid #ddd;
            border-radius: 5px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            z-index: 9999;
            font-family: Arial, sans-serif;
            max-height: 90vh;
            overflow-y: auto;
        `;

        // 获取当前日期并格式化为8位数字
        const now = new Date();
        const year = now.getFullYear();
        const month = String(now.getMonth() + 1).padStart(2, '0');
        const day = String(now.getDate()).padStart(2, '0');
        const dateStr = year + month + day;

        // 定义导航链接结构
        const navigation = [
            {
                category: '常用导航',
                links: [
                    { text: '名师网首页', url: 'https://ms.zjer.cn/' },
                    { text: '基础教育站', url: 'https://ms.zjer.cn/index.php?r=studio/workstation&wid=27' }
                ]
            },
            {
                category: '管理页面（登录后使用）',
                links: [
                    { text: '后台管理登录', url: `https://ms.zjer.cn/index.php?r=studio/admin/login&islogin=${dateStr}` },
                    { text: '学带申请开关', url: 'https://ms.zjer.cn/index.php?r=studio/admin/applyconfig' },
                    { text: '资讯发布', url: 'https://ms.zjer.cn/index.php?r=studio/admin/addnewsinfo' },
                    { text: '公告发布', url: 'https://ms.zjer.cn/index.php?r=studio/admin/creataffiche' },
                    { text: '媒体宣传发布', url: 'https://ms.zjer.cn/index.php?r=studio/admin/addinfo&classid=2' },
                    { text: '工作站统计', url: 'https://ms.zjer.cn/index.php?r=studio/admin/contentstatistics' }
                ]
            },
            {
                category: '每日巡查（登录后使用）',
                links: [
                    { text: '直播审核', url: 'https://ms.zjer.cn/index.php?r=studio/admin/livelist' },
                    { text: '公告审核', url: 'https://ms.zjer.cn/index.php?r=studio/admin/noticelist&send=2' },
                    { text: '资讯审核', url: 'https://ms.zjer.cn/index.php?r=studio/admin/newslist&send=2' },
                    { text: '荣誉审核', url: 'https://ms.zjer.cn/index.php?r=studio/admin/HonourList&hType=station' },
                    { text: '专题审核', url: 'https://ms.zjer.cn/index.php?r=studio/admin/restopicsclass&nameType=1' },
                    { 
                        text: '案例审核', 
                        children: [
                            { text: '研修活动案例', url: 'https://ms.zjer.cn/index.php?r=studio/admin/caselist&case_type=1' },
                            { text: '骨干教师成长案例', url: 'https://ms.zjer.cn/index.php?r=studio/admin/DescriptionList&send=2' },
                            { text: '资源建设应用案例', url: 'https://ms.zjer.cn/index.php?r=studio/admin/caselist&case_type=2' },
                            { text: '工作室运行管理案例', url: 'https://ms.zjer.cn/index.php?r=studio/admin/caselist&case_type=3' },
                            { text: '其它专题案例', url: 'https://ms.zjer.cn/index.php?r=studio/admin/caselist&case_type=4' }
                        ]
                    }
                ]
            }
        ];

        // 创建导航链接
        navigation.forEach(section => {
            // 添加分类标题
            const categoryTitle = document.createElement('div');
            categoryTitle.textContent = section.category;
            categoryTitle.style.cssText = `
                padding: 8px 10px;
                background: #f5f5f5;
                border-bottom: 1px solid #ddd;
                font-weight: bold;
                font-size: 13px;
            `;
            navContainer.appendChild(categoryTitle);

            // 添加链接
            section.links.forEach(link => {
                if (link.children) {
                    // 如果有子链接，创建父级链接
                    const parentLink = document.createElement('div');
                    parentLink.textContent = link.text;
                    parentLink.style.cssText = `
                        padding: 6px 10px 6px 15px;
                        color: #333;
                        font-weight: bold;
                        font-size: 12px;
                        border-bottom: 1px solid #eee;
                        cursor: pointer;
                    `;
                    
                    // 创建子链接容器
                    const childrenContainer = document.createElement('div');
                    childrenContainer.style.display = 'none';
                    childrenContainer.style.backgroundColor = '#fafafa';
                    
                    // 为父级链接添加点击事件，切换子链接显示/隐藏
                    parentLink.addEventListener('click', function() {
                        if (childrenContainer.style.display === 'none') {
                            childrenContainer.style.display = 'block';
                        } else {
                            childrenContainer.style.display = 'none';
                        }
                    });
                    
                    // 添加子链接
                    link.children.forEach(child => {
                        const childLink = document.createElement('a');
                        childLink.href = child.url;
                        childLink.textContent = child.text;
                        childLink.target = '_blank';
                        childLink.style.cssText = `
                            display: block;
                            padding: 5px 10px 5px 25px;
                            text-decoration: none;
                            color: #555;
                            font-size: 11px;
                            border-bottom: 1px solid #eee;
                            transition: background 0.3s;
                        `;
                        
                        // 添加悬停效果
                        childLink.addEventListener('mouseenter', function() {
                            this.style.background = '#e6f7ff';
                        });
                        
                        childLink.addEventListener('mouseleave', function() {
                            this.style.background = 'transparent';
                        });
                        
                        childrenContainer.appendChild(childLink);
                    });
                    
                    navContainer.appendChild(parentLink);
                    navContainer.appendChild(childrenContainer);
                } else {
                    // 普通链接
                    const linkElement = document.createElement('a');
                    linkElement.href = link.url;
                    linkElement.textContent = link.text;
                    linkElement.target = '_blank';
                    linkElement.style.cssText = `
                        display: block;
                        padding: 6px 10px 6px 15px;
                        text-decoration: none;
                        color: #333;
                        border-bottom: 1px solid #eee;
                        font-size: 12px;
                        transition: background 0.3s;
                    `;
                    
                    // 添加悬停效果
                    linkElement.addEventListener('mouseenter', function() {
                        this.style.background = '#f0f8ff';
                    });
                    
                    linkElement.addEventListener('mouseleave', function() {
                        this.style.background = 'transparent';
                    });
                    
                    navContainer.appendChild(linkElement);
                }
            });
        });

        // 为最后一个链接移除底部边框
        const lastElement = navContainer.lastChild;
        if (lastElement && lastElement.style) {
            lastElement.style.borderBottom = 'none';
            lastElement.style.borderRadius = '0 0 5px 5px';
        }

        // 添加导航栏到页面
        document.body.appendChild(navContainer);

        console.log('快捷导航栏已创建');
    }
})();